Web-based application services are provided to users via application servers. The application servers execute compiled code files, such as enterprise archive (EAR) and web application archive (WAR) files, to provide the application services. A single application server typically relies on and executes multiple EAR/WAR files as part of providing a single application service. Additionally, a single application service may be provided by multiple separate application servers. The use of multiple application servers may provide additional computing power to enable the application service to be provided more quickly and/or to larger numbers of concurrent users. The use of multiple application servers may further provide high availability to the application service since the application service can continue to be provided seamlessly even if one application server crashes or otherwise becomes unavailable.
Web-based applications are updated on a regular basis in order to add new features to the applications, and to correct coding or functional errors. Each update includes revisions or additions to one or more source code files storing source code for the application. In order to deploy an update, the source code files generally need to be compiled to produce the multiple new EAR/WAR files required to provide the application service, and the multiple EAR/WAR files then need to be sent to all of the application servers providing the application service. Alternatively, the source code files can be sent to all application servers providing the application service, and compiled on each application server to produce the EAR/WAR files locally. In both instances, the update requires a large amount of communication bandwidth in order to transmit the updated code files to each of the application servers. For example, this process can involve transmitting 200-300 MB of code files to 10 different application servers, resulting in 2-3 GB of data being communicated across a network. Each update may therefore use significant network bandwidth and thereby negatively impact other services provided across the network. Additionally, the deployment of the update may be delayed because of the time required to transmit such large amounts of data across the network. Moreover, in situations in which the source code is compiled on each application server, the computing power used to perform the multiple compilations is significant.
Further, after updating a web-based application, the web-based application sometimes needs to be rolled-back to a previous/earlier version of the application, for example in a situation in which an update is not functioning properly or is interfering with other functions of the application. In such a situation, performing the roll-back can necessitate re-compiling of the source code of a previous/earlier version of the application, and transmitting the compiled code of the previous/earlier version of the application to each of the application servers. The roll-back may thus require significant computing power, communication resources, and time to be completed across multiple application servers.